# 正则表达式
import re
import requests

a = 'xxIxxjshdxxlovexxsffaxxpythonxx'
infos = re.findall('xx(.*?)xx', a)  # findall 返回的为列表结构
print(infos)

a = 'one1two2three3'
infos = re.search('\d+', a)  # search 匹配并提取第一个符合规律的内容，返回正则表达式对象
print(infos)
print(infos.group())  # group 方法获取信息

phone = '159-3015-4459'
new_phone = re.sub("\D", "", phone)  # sub 用于替换字符串中的匹配项目、类似字符串中的replace，但sub更加灵活
print(new_phone)

infos = re.findall('\d+', a)  # findall 匹配所有符合规律的内容，以列表的形式返回结果
print(infos)

# 获取北京地区房租价格
res = requests.get('http://bj.xiaozhu.com/')
prices = re.findall('<span class="result_price">&#165;<i>(.*?)</i>起/晚</span>', res.text)
for price in prices:
    print(price)

# 4.2.4 re模块修饰符
a = '<div>指数</div>'
word = re.findall("<div>(.*?)</div>", a)
print(word)

a = '''<div>指数
    </div>'''
word = re.findall("<div>(.*?)</div>", a)  # findall 朱行匹配
print(word)

word = re.findall("<div>(.*?)</div>", a, re.S)  # re.S 用于跨行匹配
print(word)
print(word[0].strip())  # 去\n
